
package cn.spdb.harrier.rpc.compress;

import java.io.IOException;

import org.xerial.snappy.Snappy;


public class SnappyCompress implements Compress {


/**
 * 使用 Snappy 算法对字节数组进行压缩
 *
 * @param array 需要压缩的原始字节数组
 * @return 压缩后的字节数组，若输入为 null 则返回 null
 * @throws IOException 压缩过程中发生 IO 异常时抛出
 */
public byte[] compress(byte[] array) throws IOException {
    if (array == null) {
        return null;
    }
    return Snappy.compress(array);
}

/**
 * 使用 Snappy 算法对压缩过的字节数组进行解压
 *
 * @param array 需要解压的压缩数据
 * @return 解压后的原始字节数组，若输入为 null 则返回 null
 * @throws IOException 解压过程中发生 IO 异常时抛出
 */
public byte[] unCompress(byte[] array) throws IOException {
    if (array == null) {
        return null;
    }
    return Snappy.uncompress(array);
}


    
}
